# include <bits/stdc++.h>
using namespace std;
char c[10000023];
inline string get_str() {
	scanf("%s", c);
	return (string) c;
}
int n, ne[10000023];
inline void get_ne(string st) {
	for(int k = 0; k < st.size(); k++) {
		string tmp = st.substr(0, k + 1);
		for(int i = 1; i < k; i++)
			if(tmp.substr(0, i) == tmp.substr(k + 1 - i, i))
				ne[k] = i;
	}
}

inline bool KMP(string str, string st) {
	memset(ne, 0, sizeof(ne));
	get_ne(st);
	int len = st.size();
	for(int i = 1, j; i <= str.size() - 1 - len; i++) {
		for(j = 0; j < len; j++) if(str[i + j] != st[j]) break;
		if(j == len) return 1;
		else i += ne[j]; 
	}
	return 0;
}
int main() {
	freopen("fool.in", "r", stdin);
	//freopen("fool.out", "w", stdout);
	cin >> n;
	while(n--) {
		string str = get_str();
		int len = str.size();
		bool flag = 0;
		for(int i = len - 1; i >= 1; i--) {
			string a = str.substr(0, i), b = str.substr(len - i, i);
			//cout << a << " " << b << endl;
			if(a == b) {//前缀等于后缀
				if(KMP(str, a)) {
					flag = 1;
					cout << a << endl;
					break;
				}
			}
		}
		if(!flag) cout << "---" << endl;
	}
}
